Not applicable.
Not applicable.
1. Field of the Invention
The present invention relates generally to making computer systems more user-friendly. In particular, the present invention relates to a method for conveniently restoring the default basic input/output system (xe2x80x9cBIOSxe2x80x9d)parameter settings from a nonvolatile memory in a computer.
2. Description of Related Art
Personal computers include a basic input/output system (xe2x80x9cBIOSxe2x80x9d)stored in nonvolatile memory. The BIOS is a set of instructions which are executed to conduct the system initialization and to provide control of low level functions in the computer. Normally, the nonvolatile memory is an electrically-erasable read-only memory (xe2x80x9cEEPROMxe2x80x9d) chip, which allows the BIOS to be updated through software control. This is commonly called a xe2x80x9cflashxe2x80x9d BIOS. Under normal circumstances, the BIOS ROM is permanent and there is normally no need to deal with it.
In addition to the BIOS ROM, most conventional computer systems include a small CMOS memory and real time clock (xe2x80x9cRTCxe2x80x9d) unit. This component keeps track of the time and date, and stores BIOS configuration parameters when the computer was turned off, so that this information is readily available when the computer is turned back on. To preserve this information while the computer is off, this component also includes a low-power, long life battery.
The acronym CMOS stands for xe2x80x9cComplementary Metal Oxide Semiconductorxe2x80x9d, and generally refers to one type of technology used to make semiconductor devices (i.e., integrated circuits) such as processors, chipset chips, DRAM, etc. Devices constructed using CMOS technology advantageously require very little power compared to other semiconductor technologies. Consequently, CMOS technology is a natural choice for implementing the memory and RTC unit so that the amount of power required from the battery is minimal, and the battery would last a longer. This memory came to be called just xe2x80x9cCMOSxe2x80x9d, since in the early days of personal computer development most parts of the computer did not use CMOS. Although modem processors are typically made entirely with CMOS technology, xe2x80x9cCMOSxe2x80x9d by itself usually still refers to the BIOS settings memory.
The information stored by the CMOS memory typically includes the type of floppy disk drive, hard disk settings, the amount of memory, clock speeds, wait states, passwords, initial boot drive selection, and other configuration parameters. The BIOS directs the processor to retrieve this information to make the power-on configuration process more efficient. The CMOS used to be relatively small, about 64 or 128 bytes. As the complexity of computers has increased, the number of configuration parameters has increased. To keep pace with the increased number of parameters, the CMOS has been expanded (e.g., to 2048 bytes) to allow storage of additional parameters such as power management configuration parameters and resource assignments for Plug and Play systems. The increased number of parameters has increased the likelihood of an incorrect parameter being present, whether due to faulty user entry or to corruption of the memory contents. This is of utmost concern since the presence of an error in CMOS may render the computer unbootable, and this error may not be rectified by simply re-booting the computer due to the nonvolatile nature of the CMOS memory.
Since it in not uncommon for computer systems to develop incorrect or corrupted CMOS data, system designers have developed some techniques to clear CMOS memory. Certain few versions of BIOS will clear the CMOS settings if the  less than Insert greater than  key on the keyboard is held down by the user while the computer is performing its boot process. More commonly, computer manufacturers pro vide a jumper on the xe2x80x9cmotherboardxe2x80x9d (the main circuit board in the computer) that connects the battery to the CMOS memory. To clear the CMOS memory, the user must unplug the computer, open the case, locate the jumper and remove the jumper and thereby disconnect the battery from the CMOS memory. Without power, the CMOS memory will eventually lose all the stored information. This time period may be relatively lengthy because stray capacitance in the system may need to completely discharge before the CMOS memory clears. To speed up the process, some manufacturers provide a second jumper setting to ground the positive power supply input to the CMOS memory. In this case, the jumper is moved from a first setting to the second setting, left there for 30 seconds, and then replaced to the first setting. Grounding the positive power supply input discharges any stray capacitance at a much higher rate.
Most computer users find it undesirable, if not frustrating, to open the computer case, to locate a jumper on the motherboard, to remove and replace the jumper, to close the computer case, and reprogram the BIOS settings. Further, if the user calls for technical assistance, it is very difficult for a computer support person to guide a novice user through this process over the telephone. Providing a CMOS-memory-restoration feature through BIOS detection of a key-press may become infeasible as the multitude of alternative input devices and new keyboard configurations become popular. Pointer devices, speech recognition, and touch-sensitive screens may supplant the standard keyboard and require BIOS software to access CMOS prior to detecting the key-press that indicates the contents of CMOS should be ignored and erased. Consequently, a convenient way of restoring CMOS is desired.
Accordingly, there is provided herein a method of leveraging a multi-function power switch to provide a CMOS-restoration functionality. In one embodiment, the method for restoring CMOS parameter values in a computer having a multi-function power button includes (a) pressing the power button for a predetermined time delay while the computer is performing a power-on self test (xe2x80x9cPOSTxe2x80x9d), thereby placing the computer in an OFF state; and (b) momentarily pressing the power button to turn on the computer. Pressing the power button for four seconds preferably invokes a power button override function. The power button override function unconditionally forces the computer to a xe2x80x9csoft-offxe2x80x9d state. The BIOS is preferably configured to determine if the power-override function was invoked during the POST in the previous boot-up, and if so, to replace the CMOS parameter values with backup parameter values before proceeding with the current boot-up. The CMOS parameter values are preferably backed up only if they have changed and the BIOS has successfully completed the POST procedure with the changed values. This ensures that the backup values will allow the computer to boot when CMOS parameter restoration is needed.